The evolution towards the design of multimedia communications systems based on open standards has been ongoing since the 1980s. One example of such a system is the MediaPath™ communications server manufactured by Mitel Corporation. The MediaPath™ system comprises call control software which operates in conjunction with a plurality of server telecommunication boards (voice processing board, trunk board, line board, etc.), as described in http://www.mitel.com/MediaPath (1997).
Software agents have been used in such systems as autonomous entities that are able to act without referring to a main entity (see A. Karmouch, Mobile Software Agents for Telecommunications, IEEE Communications, July 1998). When spread over a network, these software entities require autonomy for obvious performance reasons. Agents are able to interact with each other and can manage conflicts that may occur between them as a result of these interactions. Furthermore, agents are able to react to changes that occur in their environments.
In R. Buhr, D. Amyot, M. Elammari, D. Quesnel, T. Gray, S. Mankovski, “Feature-Interaction Visualisation and Resolution in an Agent Environment”, Feature Interactions in Telecommunications and Software Systems V.”, K. Kimbler and L. G. Bouma, editors, IOS Press Amsterdam, The Netherlands, 1998, p. 135–149, a multi-agent architecture is set forth wherein each physical device is represented by a device agent that is responsible for handling and controlling all requests and actions of the device. The device agent may contain multiple feature agents, which are responsible for implementing the various features to which the device has subscribed. The end user may also be represented by a user-agent, which contains all of the preferences of the user.
Researchers have also utilized the principles of multi-agent architectures in designing distributed and federated multi-enterprise systems. One example of such a system is the Personal Mobility Management System designed and implemented by the Mobile Agent Alliance, which is a collaboration of the University of Ottawa, Mitel Corporation and the National Research Council of Canada. The Personal Mobility Management System (PMMS) provides personalized services and access to resources for nomadic users over a network. The system provides a nomadic user with a working environment, which is similar to his/her home environment. In the home site, a user has a profile that describes his/her preferences: the services he/she uses, the quality of service required, the cost he/she is willing to pay to use certain billable services, etc. A dynamic mapping between the user profile and the local policies on each site determines a set of services that a visiting site can offer to its guest. A nomadic user can be requested to pay a cost for services such as long distance calling. For example, in the instance in which the visiting site is a hotel, which has made arrangements with a guest's employers having regard to access to hotel facilities costs that the guest incurs in the use of services can be billed directly to the employer. Thus, it is desirable for the employer to be able to institute policies about which billable services are allowable. Hence, agent negotiation techniques are used between the home site and the visiting site in order to agree on the cost or to find a service that can fit the requirements of the user with a lower cost. Negotiation is also used for resource reservation when a user starts a service on a visiting site.
Very little research has been undertaken to date in the area of integrating policies and agents together. With the use of agents, real automated and policy driven management can be accomplished. The inventors have recognized that policies can be used to monitor agent behavior in specific situations and to ensure that such behavior is consistent with the global strategy of the system.
The term “policies” may be defined as a set of rules in a domain-managed object. These rules are derived from management goals and related business strategies to define the desired behavior of distributed heterogeneous systems, networks and applications. They provide means for expressing how tasks are to be undertaken and how a system is to respond to a given situation. Policies may also be defined as a binary relationship between objects. Binary relations, consisting of a subject and a target, can be used to express different types of policies. Management policies may be expressed by a human manager in a high level manner, i.e. policy language. These policies must then be transformed and refined into scripts or rules that can be interpreted by software agents (see D. Marriot, M. Sloman, Management Policy Service for Distributed Systems, IEEE 3rd Int. Workshop on Services in Distributed and Network Environments, Macau, June 1996). Policies are expressed independently from the agents that interpret them. This separation permits modification of the policies without changing the code of the agents. Furthermore, agents can be reused in different networks where different policies apply.
Because of the large number of policies, classification systems have been developed to give semantics to the policies and to assist in automating the process of transforming and refining of the policies. The most important classes are set forth in R. Wies, Policy Definition and Classification: Aspects, Criteria and Examples, Proceeding of the IFIP, IEEE International Workshop on Distributed Systems: Operations & Management, Toulouse, France, 10–12 Oct. 1994, as follows:
Mode: Policies can be an obligation, permission, or prohibition.
Lifetime: a short, medium, or long term application can characterize the duration of a policy.
Trigger mode: the enforcement of a policy can be constantly active, repeated periodically for a specific period time, triggered by asynchronous events or a combination of the last two.
Activity: a policy can monitor or enforce actions on its target objects or react to a new situation that occurs in the system.
Functionality of targets: this class includes policies applicable to resources with common characteristics (e.g. printers, hubs, and routers . . . ).
In Amin Hooda, “Data Management for Supporting Nomadic Users Based on LDAP and Software Agents”, Master's Thesis, October, 1998, Department of Computer Engineering, University of Ottawa, Ottawa, Canada, policies are defined as regulations that should facilitate the accountability of proper usage of communication resources, maximize the availability of communication access for users, provide security definitions for accessing a device and its corresponding services, and facilitate the creation of varied secure regions within an organization. The solution set forth in Hooda for including policies in the system is to add certain attributes to the site related data that are stored on an LDAP (Lightweight Directory Access Protocol) directory of each site. These attributes describe the services available in the site and the restricted areas that can only be assigned to privileged users. However, this approach suffers from a number of weaknesses. Firstly, no standard representation of policies is provided. Secondly, the policies are dependent on the system and co-located with the description of the system. Also, the policies are not classified according to the activities they monitor in order to facilitate the enforcement of the policies into the system. Furthermore, no mechanisms are provided to detect and resolve conflicts that are inevitable between enterprises.